<?php

require_once 'url-validation.class.php';

/**
 * Проверяет правильность URL.
 *
 */
class Kernel_Validator_Url extends Kernel_Validator_Abstract {

    /**
     * Флаг "строгой" проверки. В этом случае URL обязательно должен содержать
     * наименование протокола.
     *
     * @var boolean
     */
    public $strict = false;

    /**
     * Сообщение об ошибке, которое бросает валидатор.
     *
     * @var string
     */
    public $message = 'VALIDATION_ERROR_URL';

    /**
     * Проверяет правильность указанного значения
     *
     * @param   mixed   $value
     * @return  boolean
     */
    protected function _isValid($value) {
        // такой вот костыль — подсовываем протокол руками, чтобы валидатор
        // захавал. потому что далеко не всегда надо получать на входе именно
        // полный URL
        if (!$this->strict && !preg_match('|^[a-z\d]+://|', $value)) {
            $value = 'http://' . $value;
        }
        $validator = new mrsnk_URL_validation($value);
        return $validator->isValid();
    }
}
